//
//  BSKDBManager.h
//  TextNote
//
//  Created by rimi on 16/5/23.
//  Copyright © 2016年 BlueSky. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "FMDB.h"
@interface BSKDBManager : NSObject
@property(nonatomic,strong) NSString * DBName;
@property(nonatomic,assign) BOOL allowForeignKey;
@property(nonatomic,strong) FMDatabase * fmDatabase;
/**
 *  打开数据库，如果该数据库文件不存在则自动创建
 *
 *  @param DBName 数据库的名字
 *
 *  @return 返回一个数据库（FMDatabase）对象，使用完之后应该调用它的关闭方法将其关闭。
 */
-(FMDatabase *)openDataBase:(NSString *)DBName;
/**
 *  创建一个表
 *
 *  @param tableName 表名
 *  @param columnns  表的列名以及类型  @[@[@"列名",@"类型"],@[@"列名",@"类型"]]
 *
 *  @return 返回值为是否成功
 */
-(BOOL)creatTable:(NSString *)tableName Columnns:(NSArray *)columnns;
/**
 *  删除一个表
 *
 *  @param tableName 表名
 *
 *  @return 返回值为是否成功
 */
-(BOOL)deleteTable:(NSString *)tableName;
/**
 *  插入一条数据
 *
 *  @param tableName 表名
 *  @param columnns  插入的数据 格式为：@[@[@"列名",数据],@[@"列名",数据]]
 *
 *  @return 返回值为是否成功
 */
-(BOOL)insertDataToTable:(NSString * )tableName Columnns:(NSArray *)columnns;
/**
 *  从表中删除一条符合条件的数据
 *
 *  @param tableName 表名
 *  @param condition 删除条件 格式如：@"name = '张三' and age > 20 "
 *
 *  @return 返回值为是否成功
 */
-(BOOL)deleteDataFromTable:(NSString * )tableName condition:(NSString *)condition;
/**
 *  查询数据
 *
 *  @param tableName 表名
 *  @param columnns  要查询的列名 如@[@"name",@"age"];
 *  @param condition 查询条件  如：@"name = '张三' and age > 20 "， 可为nil
 *
 *  @return 返回一个FMrequesSet（FMDB库的查询结果集，使用方法见FMDB的文档）
 */
-(FMResultSet *)queryDataFromTable:(NSString *) tableName Columnns:(NSArray *) columnns condition:(NSString * )condition;
/**
 *  更新满足条件的列
 *
 *  @param tableName 表名
 *  @param columnns  要更新的列和新的值
 *  @param condition 更新条件 如：@"name = '张三' and age > 20 "， 可为nil
 *
 *  @return 返回值为是否成功
 */
-(BOOL)updateDataToTable:(NSString * )tableName Columnns:(NSArray *)columnns condition:(NSString *)condition;

@end
